Neste artigo abordarei o uso básico dos wildcards (coringas), que combinados com os comandos de terminal podem fazer mágica. Seu domínio é essencial para todo bom administrador de sistemas Linux.
Utilizando os Wildcards - realizando movimentações
Anteriormente aprendemos a utilizar os wildcards, e mesmo em modo listagem, conseguimos entender como é sua sintaxe, ou seja, entendendo sua sintaxe, sabemos como utilizá-lo, independente do comando usado.
Esta decidi ser uma parte do artigo mais prática, ou seja, hands-on, colocaremos em prática tudo que foi visto, porém um pouco mais afundo. ;D
Como sempre trabalharemos dentro do diretório /tmp, porém realizaremos consulta fora do mesmo, ou seja, não saberemos o que realmente contém em outros diretórios a não ser o que nos interessa, então teremos que ser bem mais cautelosos na montagem de nossa expressão.
Antes de continuar, quero destacar aqui um pouco do que realizaremos, para um exemplo mais real, de cotidiano de um administrador, resolvi que realizaremos cópias de arquivos em diretórios como /etc, e como são cópias, não há risco de prejudicar o funcionamento do seu sistema.
Se você não se sentir a vontade, peço que não continue, mas se mesmo assim gostaria de ler, crie uma máquina virtual e ali realize seus testes.
Um exemplo agora, copiaremos todos os arquivos iniciados com a, b, c, e, f com extensão .conf de /etc para /tmp.
Antes sempre de montar sua expressão, raciocine em quais wildcards você deve usar, aqui temos uma sequência de letras, então poderíamos usar o [] e fazer algo como [a-f] não é?
Veja, a-b-c-d-e-f, não queremos d em nossa pesquisa, então não poderíamos usá-lo, pois acabaríamos tendo arquivos que não nos interessa. Fique sempre atento a isso, use o [] em uma sequência sem intervalos!
Nossa expressão ficaria mais ou menos assim:
# cp -v /etc/{a,b,c,e,f}*.conf /tmp
`/etc/adduser.conf' -> `/tmp/adduser.conf'
`/etc/brltty.conf' -> `/tmp/brltty.conf'
`/etc/casper.conf' -> `/tmp/casper.conf'
cp: cannot stat `/etc/e*.conf': No such file or directory
`/etc/fdmount.conf' -> `/tmp/fdmount.conf'
`/etc/fuse.conf' -> `/tmp/fuse.conf'
(perfeito, somente o que queria)
Ok, mas isso é pouco para nós, vamos a mais exemplos.
Agora copiaremos todos os arquivos que terminam com as letras r, s, t, u, z do diretório /etc e que tenham ainda extensão .conf para /tmp.
Vamos lá!
# cp -v /etc/*{r,s,t,u,z}.conf /tmp
`/etc/adduser.conf' -> `/tmp/adduser.conf'
`/etc/casper.conf' -> `/tmp/casper.conf'
`/etc/deluser.conf' -> `/tmp/deluser.conf'
`/etc/discover.conf' -> `/tmp/discover.conf'
`/etc/scrollkeeper.conf' -> `/tmp/scrollkeeper.conf'
`/etc/mke2fs.conf' -> `/tmp/mke2fs.conf'
`/etc/fdmount.conf' -> `/tmp/fdmount.conf'
`/etc/host.conf' -> `/tmp/host.conf'
`/etc/popularity-contest.conf' -> `/tmp/popularity-contest.conf'
cp: cannot stat `/etc/*u.conf': No such file or directory
cp: cannot stat `/etc/*z.conf': No such file or directory
Ainda percebemos que não tem arquivos terminados com u ou z.
Agora moveremos alguns arquivos. Antes criei um usuário com o nome da sua distribuição, mas crie um /home para ele também, no meu caso criei o usuário Debian.
Vamos então mover todos arquivos que acabamos de copiar de /etc para /tmp para o home do usuário criado (exceto os que terminem com a letra t) e que tenham extensão .conf.
# mv -v /tmp/*{r,s,u,z}.conf /home/debian
`/tmp/adduser.conf' -> `/home/debian/adduser.conf'
removed `/tmp/adduser.conf'
`/tmp/casper.conf' -> `/home/debian/casper.conf'
removed `/tmp/casper.conf'
`/tmp/deluser.conf' -> `/home/debian/deluser.conf'
removed `/tmp/deluser.conf'
`/tmp/discover.conf' -> `/home/debian/discover.conf'
removed `/tmp/discover.conf'
`/tmp/scrollkeeper.conf' -> `/home/debian/scrollkeeper.conf'
removed `/tmp/scrollkeeper.conf'
`/tmp/mke2fs.conf' -> `/home/debian/mke2fs.conf'
removed `/tmp/mke2fs.conf'
mv: cannot stat `/tmp/*u.conf': No such file or directory
mv: cannot stat `/tmp/*z.conf': No such file or directory
Simples não é?
Bom, acho que poderia deixar mais exemplos, mas creio eu que vocês devem ter captado a mensagem.
Espero também que tenha sido de ajuda a vocês. ;D
Considerações finais
O uso de wildcars pode nos auxiliar em inúmeras tarefas, porém para usar em desktops pode parecer um pouco sem sentido, mas para administradores de sistemas isso ajuda e muito, otimiza tarefas, buscas, verificações, enfim, você procura e realmente acha o que deseja. :)
É isso aí, espero que tenha sido útil a vocês e de fácil entendimento.
Um abraço a todos!
Dúvidas, criticas ou sugestões: f-maran@hotmail.com
[8] Comentário enviado por Teixeira em 30/01/2009 - 22:58h
Grande Maran!
Os wildcards ja eram muito importantes nos tempos do DOS,
e nao perderam nada dese aimportancia ate hoje.
Voce abordou com muita felicidade o assunto.
Acho que ficou bem pratico e compreensivel,
pois eeees materia em manuais por ai sempre foi de uma chatice tremenda, que voce conseguiu evitar.
Ficou bem leve.
Parabens!
[9] Comentário enviado por Teixeira em 30/01/2009 - 22:59h
Grande Maran!
Os wildcards ja eram muito importantes nos tempos do DOS,
e nao perderam nada dessa importancia ate hoje.
Voce abordou com muita felicidade o assunto.
Acho que ficou bem pratico e compreensivel,
pois eeees materia em manuais por ai sempre foi de uma chatice tremenda, que voce conseguiu evitar.
Ficou bem leve.
Parabens!
[10] Comentário enviado por Teixeira em 30/01/2009 - 23:01h
Grande Maran!
Os wildcards ja eram muito importantes nos tempos do DOS,
e nao perderam nada dessa importancia ate hoje.
Voce abordou com muita felicidade o assunto.
Acho que ficou bem pratico e compreensivel,
pois essa materia em manuais por ai sempre foi de uma chatice tremenda, que voce conseguiu evitar.
Ficou bem leve.
Parabens!